import json
import time
import os
import tornado
import tornado.websocket
import tornado.web
from db.datab import db

from util.myredis import r
conndict = {}
userlist = []
class WbHandler1(tornado.websocket.WebSocketHandler):
    # 跨域支持
    def check_origin(self,origin):
        return True
    #建立连接
    def open(self):
        # 获取参数
        id = str(self.get_query_argument('userid'))
        name = str(self.get_query_argument('name'))
        # 存储链接
        conndict[id] = self
        index = id.find('kefu')
        if index>=0:
            self.write_message({'code':200,'userlist':userlist,'mes':{}})

        else:
            # 判断是否为用户 如果为用户加入userlist
            userlist.append({'id':id,'name':name})
            # 用户上线
            key = 'levelmes'+str(id)
            mm = r.str_get(key)
            if mm:
                mm = mm.decode()
                self.write_message({'code': 200, 'userlist': userlist, 'mes': mm})

        print(conndict)
        print(userlist)

        # 如果为客服返回userlist
        # 判断是否为客服

    def on_message(self,mes):

        mes = json.loads(mes)
        id = str(mes['id'])
        mes = mes['mes']
        # 如果客服给用户发判断用户是否在线 如果不在线将消息存入redis key用户id+levelmes，value:[]
        if id in conndict:

            conndict[id].write_message({'code':200,'mes':mes,'userlist':userlist})
        else:
            # 存入redis
            key="levelmes"+str(id)
            # 用户不在把消息存入redis
            mes = r.str_add(key,mes)



    def on_close(self):
        pass
